package com.tools.service.user;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tools.pojo.user.bo.RoleBO;
import com.tools.pojo.user.dto.RoleDTO;
import com.tools.pojo.user.po.Role;
import com.tools.pojo.user.vo.RoleVO;

import java.util.List;

public interface RoleService extends IService<Role> {

    /**
     * 创建角色
     * @param roleBO 角色信息
     */
    Boolean createRole(RoleBO roleBO);

    /**
     * 删除角色
     * @param id 角色ID
     */
    Boolean deleteRoleById(Long id);

    /**
     * 更新角色状态
     * @param id 角色ID
     * @param status 角色状态
     */
    Boolean updateRoleStatus(Long id, String status);

    /**
     * 获取角色分页列表
     * @param roleDTO 角色查询条件
     * @return 角色分页列表
     */
    IPage<RoleVO> getRolePage(RoleDTO roleDTO);

    /**
     * 获取角色详情
     * @param id 角色ID
     * @return 角色详情
     */
    RoleVO getRoleById(Long id);

    /**
     * 批量删除角色
     * @param ids 角色ID列表
     */
    Boolean batchDeleteRole(List<Long> ids);

    /**
     * 获取角色下拉列表
     * @return 角色下拉列表
     *
     */
    List<RoleVO> getRoleSelectList();

    /**
     * 更新角色信息
     * @param roleBO 角色信息
     * @return 更新结果
     */
    Boolean updateRole(RoleBO roleBO);

}
